#ifndef DIRECTORYUTILITIES_H
#define DIRECTORYUTILITIES_H

#include <QString>
#include <QStringList>
#include <QDir>

#include "generatoroutputview.h"
#include "generatordata.h"

class DirectoryUtilities
{
public:
    DirectoryUtilities(GeneratorOutputView &outputView, GeneratorData &generatorData);

	void getFiles(const QString &directory, QDir::Filters &filters, const QStringList &nameFilters, int pathLengthToSubstract, const QString &filePrefixToAdd, QStringList &foundFiles);
    bool getFile(const QString &directory, QDir::Filters &filters, const QStringList &nameFilters, QString &foundFile);
	void getDirs(const QString &directory, QDir::Filters &filters, const QStringList &nameFilters, int pathLengthToSubstract, const QString &filePrefixToAdd, QStringList &foundDirs);
	static void cleanDirectory(const QString &directory, bool cleanSubdir, const QString &rootDirectory);
    bool getSubdirectory(const QString &directory, QString &subdir);
    bool copyDirectory(const QString &srcDirectory, const QString &destDirectory, bool deleteOriginal = false);

private:
    GeneratorOutputView &m_outputView;
    GeneratorData       &m_generatorData;
};

#endif // DIRECTORYUTILITIES_H
